package org.Stage1_logformat;

/**
 * @Auther: qingle
 * @Date: 2024/5/27-0:37
 * @Description: 选择排序
 * @version: 1.0
 */
public class Code01_SelectionSort {

	public static void selectionSort(int[] arr) {
		if (arr == null || arr.length < 2) {
			return;
		}

		// 0 ~ N-1 找到最小值在哪儿，放在0的位置上
		// 1 ~ N-1 找到最小值在哪儿，放在1的位置上
		// 2 ~ N-1 找到最小值在哪儿，放在2的位置上
		for (int i = 0; i < arr.length - 1; i++) {
			int minIndex = i;
			for (int j = i + 1; j < arr.length; j++) {
				minIndex = arr[j] < arr[minIndex] ? j : minIndex;
			}
			swap(arr, i, minIndex);
		}
	}

	public static void swap(int[] arr, int i, int j) {
		int tmp = arr[i];
		arr[i] = arr[j];
		arr[j] = tmp;
	}

	public static void main(String[] args) {
		int[] arr = {1, 3, 5, 7, 9, 2, 4, 6, 8, 0};
		selectionSort(arr);
		for (int i : arr) {
			System.out.print(i + " ");
		}
	}

}
